package com.heu.blood.transfusion.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author myq
 * @since 2023-07-01
 */
@Data
@TableName("transfusion_application")
public class TransfusionApplicationEntity implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     * 编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(value = "gmt_create", fill = FieldFill.INSERT) // 创建注解
    private Date gmtCreate;

    /**
     * 修改时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(value = "gmt_modified", fill = FieldFill.INSERT_UPDATE) // 更新注解
    private Date gmtModified;

    /**
     * 输血申请单号
     */
    private String transfusionId;

    /**
     * 病案号（已弃用）
     */
    private String medicalRecordNumber;

    /**
     * 就诊号
     */
    private String visitNumber;

    /**
     * 姓名
     */
    private String name;

    /**
     * 身份证号
     */
    private String idcard;

    /**
     * 性别
     */
    private String gender;

    /**
     * 年龄
     */
    private String age;

    /**
     * 科室
     */
    private String department;

    /**
     * 所在病区
     */
    private String ward;

    /**
     * 床号
     */
    private String bedNumber;

    /**
     * 民族
     */
    private String national;

    /**
     * 临床诊断
     */
    private String clinicalDiagnosis;

    /**
     * 输血目的
     */
    private String transfusionPurpose;

    /**
     * 既往输血史
     */
    private String transfusionHistory;

    /**
     * 孕（次）
     */
    private String pregnancy;

    /**
     * 产（次）
     */
    private String maternity;

    /**
     * 申请类型（手术备血/常规输血/紧急输血/血浆置换）
     */
    private String applicationType;

    /**
     * 申请日期
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date applicationTime;

    /**
     * 采血时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date collectTime;

    /**
     * 用血日期（预定输血日期）
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date transfusionTime;

    /**
     * 患者血液样本号
     */
    private String bloodSampleNumber;

    /**
     * ABO血型（申请）
     */
    private String aboBloodType;

    /**
     * rh血型（申请）
     */
    private String rhBloodType;

    /**
     * 申请血液成分(blood_type字典) （预定输血成分）
     */
    private String bloodType;

    /**
     * 申请输血量（预定输血量）
     */
    private BigDecimal applyCount;

    /**
     * 血液单位
     */
    private String measurementUnit;

    /**
     * 申请医师（申请医师签字）
     */
    private String appliedDoctor;

    /**
     * 申请医师工号
     */
    private String appliedDoctorNum;

    /**
     * 是否采集血样本
     */
    private String isCollectBlood;

    /**
     * 收费类别
     */
    private String chargeType;

    /**
     * 医生备注
     */
    private String note;

    /**
     * 手术名称
     */
    private String surgicalName;

    /**
     * 病人类别
     */
    private String patientType;

    /**
     * 特殊用药史
     */
    private String specialMedicationHistory;

    /**
     * 药物过敏史
     */
    private String drugAllergyHistory;

    /**
     * 大量用血（0否1是）
     */
    private String isExcessiveBlood;

    /**
     * 自身输血
     */
    private String isAutotransfusion;

    /**
     * 加急
     */
    private String isUrgent;

    /**
     * 是否干细胞移植
     */
    private String isStemCell;

    /**
     * 是否备血
     */
    private String isBloodPreparation;

    /**
     * 是否异型输注
     */
    private String isAllogeneicInfusion;

    /**
     * 异型输注原因
     */
    private String allogeneicInfusionReason;

    /**
     * 抗体筛查
     */
    private String antibodyScreening;

    /**
     * 是否多次配血不合
     */
    private String isMuchMismatches;

    /**
     * 是否疑难血型
     */
    private String isDifficultBlood;

    /**
     * 是否abo亚型
     */
    private String isSubtype;

    /**
     * 是否特殊抗体
     */
    private String isSpecialAntibodies;

    /**
     * 患者编号
     */
    private String patientId;

    /**
     * 输血同意书是否通过（0否1是）
     */
    private String isAgreement;

    /**
     * 申请状态
     */
    private String state;

    /**
     * 输血申请审核状态（ApplicationStatus）
     */
    @TableField(value = "transfusion_status",fill=FieldFill.INSERT)
    private String transfusionStatus;


    /**
     *  申请驳回原因
     */
    private String applicationRejectReason;

    /**
     * 1代表已删除，0代表未删除
     */
    @TableLogic(value = "0", delval = "1")
    @TableField(value = "is_deleted", fill = FieldFill.INSERT) // 创建注解
    private Integer isDeleted;

    /**
     * 1表示展示，0代表不展示
     */
    @TableField(value = "if_show",fill=FieldFill.INSERT)
    private Integer ifShow;

    /**
     * 受血者属地（本市/外埠）
     */
    private String territorial;

    /**
     * 血红蛋白
     */
    private String haemoglobin;

    /**
     * HCT
     */
    private String hct;

    /**
     * 血小板
     */
    private String platelet;

    /**
     * ALT
     */
    private String alt;

    /**
     * HBsAg
     */
    private String hbsag;

    /**
     * Anti_HCV
     */
    private String antiHcv;

    /**
     * Anti_HIV1/2
     */
    private String antiHiv;

    /**
     * 梅毒
     */
    private String syphilis;

    /**
     * 梅毒
     */
    private String attendingSign;

    /**
     * 特殊配血审核人
     */
    private String specialMatchReviewer;

    /**
     * 是否特殊配血（1代表特殊配血，0代表普通配血
     */
    private String isSpecialMatch;

}
